package com.example.demo.service;

import java.util.List;

import com.example.demo.entity.Bayonet;
import com.example.demo.entity.CarInfo;
import com.example.demo.entity.Point;

public interface HbaseCarsMessageService {
	/**
	 * 获取车辆经过的卡口信息接口
	 *
	 * @param licenseNumber 车牌号码
	 * @param startTime     开始时间
	 * @param endTime       结束时间
	 * @return 车牌号码、时间、经过的卡口名称、抓怕的图片等卡口信息
	 * 	备注：需要该时间段内经过2个不同卡口的数据；起止时间可为空。
	 */
	List<Bayonet>  getCarPassedBayonetInformation(String licenseNumber, String startTime, String endTime, String type);

	/**
	 *     查询 卡口名称、经度、维度、车道方向等卡口信息 
	 * @return  结果集 :卡口名称、经度、维度、车道方向 等卡口信息
	 * 	备注：需要经过2个不同卡口的数据
	 */
	List<Bayonet> getAllBayonetInformation();

	/**
	 * 根据电子围栏点坐标信息查找卡口信息  （有多个经纬度坐标）
	 * @param 坐标集合 List<points> 电子围栏点坐标（有多个经纬度坐标）
	 * @return 卡口信息
	 */
	List<Bayonet> getPointCoordinateBayonetInformation(List<Point> points);

	/**
	 * 4、获取国道、高速出入口卡口信息
	 * @return 卡口名称、经度、维度、车道方向 
	 * 	获取亳州市区周边（出入境亳州）的卡口
	 */
	List<Bayonet> getNationalAndHighWayinateBayonetInformation();

	/**
	 * 5、根据起止时间，车辆类型，卡口列表查询车辆信息
	 * 	开始时间、结束时间、车辆类型、卡口列表（或单个卡口）
	 * @param startTime 开始时间
	 * @param endTime	结束时间
	 * @param type		车辆类型
	 * @param list	卡口信息列表
	 * @return 车辆类型、车牌号、经过的时间，行驶方向、图片
	 */
	List<CarInfo> getTypeBayonetsInformation(String startTime, String endTime, String type, List<Bayonet> list);
	
	/**
	 * 5、根据起止时间，车辆类型，卡口列表查询车辆信息
	 * 	开始时间、结束时间、车辆类型、卡口列表（或单个卡口）
	 * @param startTime 开始时间
	 * @param endTime	结束时间
	 * @param type		车辆类型
	 * @param list	卡口信息列表
	 * @return 车辆类型、车牌号、经过的时间，行驶方向、图片
	 */
	List<CarInfo> getLeaseBayonetsInformation(String startTime, String endTime, String type, List<Bayonet> list);

}
